package com.nova.android.tvlauncher.ui.view.ad

import android.view.View
import android.widget.FrameLayout
import com.seraphic.ad.AdConfig
import com.seraphic.ad.AdManager
import com.seraphic.ad.AdPlayManager
import com.seraphic.ad.AdPlayManager.TYPE_WITH_CONTAINER
import com.seraphic.ad.AdPlayManager.UI_FLAG_SHOW_EXIT_TIPS
import com.seraphic.ad.AdState
import com.seraphic.ad.AdStateListener
import com.shudong.lib_base.ext.appContext
import java.lang.ref.WeakReference

object AdManagerImpl {

    private var adPlayManagerRef: WeakReference<AdPlayManager>? = null

    fun init() {
        //广告初始化
       /* try {
            val config = AdConfig.Builder()
                .isDebug(false) // 是否开启 debug 模式，开启会打印更多 log，供开发调试
                .productName("test")
                .productTag("test")
                .adId("test") // 如果环境中没有 GMS 可不填
                .build()

            AdManager.initialize(appContext,config)
        } catch (e: Exception) {
            println("当前异常是：${e.message}")
        }*/

    }

    fun showAd(
        flRoot: View,
        adStart: (() -> Unit)?,
        adError: (() -> Unit)?,
        adComplete: () -> Unit
    ) {
        //展示广告
        //println("hq002的广告展示")

      /*  try {
            val adPlayManager = AdPlayManager(
                appContext, TYPE_WITH_CONTAINER, 11, object : AdStateListener {
                    override fun onAdStateChange(state: AdState) {
                        when (state) {
                            AdState.AD_ERROR -> {
                                //广告加载错误
                               // println("广告播放错误")
                                adError?.invoke()
                            }

                            AdState.AD_LOADING -> {
                                //广告开始加载
                               // println("广告开始加载")
                            }

                            AdState.AD_LOADED -> {
                                //广告加载完成
                               // println("广告加载完成")
                            }

                            AdState.AD_PLAYING -> {
                                //广告开始播放
                                adStart?.invoke()
                               // println("广告开始播放")
                            }

                            AdState.AD_COMPLETE_ALL -> {
                                //广告播放完成
                                adComplete.invoke()
                               // println("广告播放完成")
                            }

                            else -> {
                                //在这里处理未覆盖的状态
                               // println("广告其他状态")
                            }
                        }
                    }
                }, UI_FLAG_SHOW_EXIT_TIPS
            )
            // 存储弱引用
            adPlayManagerRef = WeakReference(adPlayManager)
            adPlayManager.startAd(flRoot as FrameLayout, 0f)
        } catch (e: Exception) {
            println("当前的异常是：${e.message}")
        }*/

    }

    fun destroyAd() {
        //销毁广告
        try {
            // 获取弱引用中的 AdPlayManager
            adPlayManagerRef?.get()?.let { adPlayManager ->
                // 调用 AdPlayManager 的销毁方法（假设有类似方法）
                adPlayManager.stopAd() // 请确认 AdPlayManager 是否有 destroy 方法
                adPlayManagerRef?.clear() // 清除弱引用
            }
        } catch (e: Exception) {
            println("销毁广告异常：${e.message}")
        }
    }


}
